package com.example.chatapp.repository;

import com.example.chatapp.model.Friendship;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Optional;

public interface FriendshipRepository extends JpaRepository<Friendship, Long> {
    
    // 查询用户的所有好友ID
    @Query("SELECT f.friendId FROM Friendship f WHERE f.userId = :userId")
    List<Long> findFriendIdsByUserId(@Param("userId") Long userId);
    
    // 检查是否是好友关系
    boolean existsByUserIdAndFriendId(Long userId, Long friendId);
    
    // 查找好友关系
    Optional<Friendship> findByUserIdAndFriendId(Long userId, Long friendId);
    
    // 删除好友关系（双向）
    void deleteByUserIdAndFriendId(Long userId, Long friendId);
    
    // 统计好友数量
    long countByUserId(Long userId);
}
